/**
 * 北京中流科技有限公司 版权所有
 * http://www.chinasoa.com.cn
 */
package cn.com.chinasoa.course.subscribe.model;

import java.io.Serializable;
import java.sql.Time;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Version;

import org.apache.openjpa.persistence.jdbc.ElementJoinColumn;

/**
 * @author 刘洋(liuyang@chinasoa.com.cn)
 * 2007-9-26下午12:19:18
 * 培训科目
 */
@Entity
public class TrainingSubject implements Serializable {

	private static final long serialVersionUID = 2324554866505116641L;
	
	@Id
    @GeneratedValue(strategy=GenerationType.AUTO) 
	private long id;
	@Version
	private int version;
	
	@Column	
	private String type="soa";
	
	//培训编号 RHD267
	@Column(nullable=false)
	private String code;

	//课程概要 高级 Hibernate 课程合适熟悉Hibernate并想成为Hibernate 3专家的开发人员。
	@Column(nullable=false)
	private String summary;
	//课程天数 2天
	@Column(nullable=false)
	private float period;
	@Column(nullable=false)
	//上课时间 开始时间: 上午9:00
	private Time startTime;
	//结束时间: 下午4:30-5:00
	@Column(nullable=false)
	private Time endTime;
	//课程描述 Advanced Hibernate训练是提供给希望了解Hibernate O/R映射框架精髓的Java开发人员。本课程的主要适合正使用基于SQL的数据库系统货数据库开发而打算了解面向的对象开发人员。有兴趣了解ORM是如何影响性能以及如何调整关系数据库性能的数据库管理员也能从此课程发现价值。本课程涵盖Hibernate 3的新特性。
	@Column(nullable=false)
	private String description;

	//课程要求 本课程需要具备以下经验:􀂘􀂛􀁧􀀴􀀴􀀡􀁮􀁦􀁱􀁧􀀣􀁤􀃣􀀧􀀴􀀡􀃒􀀡􀀣􀁦􀁯
	@OneToMany(cascade=CascadeType.REFRESH,fetch=FetchType.EAGER)
	@ElementJoinColumn(name="trainingSubject_id")
	private List<TrainingCondition> trainingConditions = new ArrayList<TrainingCondition>();

	//基础的Hibernate知识.
	//熟悉Java语言
	//基本的OOAD知识
	//熟悉UML
	//有特定数据库SQL的经验
	//能够使用 JDK在命令行模式下创建编译和执行Java的能力
	//JNDI, JDBC EJB2.1实体Bean 和 EJB 3.0的知识不是必须，但会有所帮助。. 推荐阅读由Christian Bauer 和 Gavin King
	//编写的<<Hibernate in Action>>一书。
	@Column(nullable=false)
	private int price;
	//课程价格 4000元

	public String getCode() {
		return code;
	}
	public void setCode(String code) {
		this.code = code;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	public Time getEndTime() {
		return endTime;
	}
	public void setEndTime(Time endTime) {
		this.endTime = endTime;
	}
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public float getPeriod() {
		return period;
	}

	public void setPeriod(float period) {
		this.period = period;
	}

	public List<TrainingCondition> getTrainingConditions() {
		return trainingConditions;
	}

	public void setTrainingConditions(List<TrainingCondition> preconditions) {
		this.trainingConditions = preconditions;
	}

	public int getPrice() {
		return price;
	}
	public void setPrice(int price) {
		this.price = price;
	}
	public Time getStartTime() {
		return startTime;
	}
	public void setStartTime(Time startTime) {
		this.startTime = startTime;
	}
	public String getSummary() {
		return summary;
	}
	public void setSummary(String summary) {
		this.summary = summary;
	}
	public int getVersion() {
		return version;
	}
	public void setVersion(int version) {
		this.version = version;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}

	
}
